perm filename PMATCH.HDR[AL,HE] blob sn#290111 filedate 1977-06-28 generic text, type T, neo UTF8
EXTERNAL RECORD_CLASS FACT(RECORD_POINTER(ANY_CLASS) PATT;
					RECORD_POINTER(ANY_CLASS) ITEMVAR ID;
					INTEGER USECNT,WM1,WM2,WM3,WM4,WM5,WM6);

EXTERNAL RECORD_CLASS FBOOL(INTEGER ANDORNOT;RPTR(CELL) ARGS);

DEFINE WMWORDS = 6;
DEFINE WLDMAX=WMWORDS*36-1;
EXTERNAL ITEMVAR ARRAY CLEAR[1:WLDMAX],GUARD[1:WLDMAX];
EXTERNAL ITEMVAR ACTIVE_ALERT,ALERT_ORDER;

EXTERNAL RPTR(FACT) _FACT_;
EXTERNAL ITEMVAR _WLD_; ! holds world last used in asrtf or denyf;
EXTERNAL RPTR(FACT) _DEMONF_; ! holds factid of current when_asserting or
			 when_denying procedure;
EXTERNAL RECURSIVE PROCEDURE DO_DEMONS(ITEMVAR WLD,OCCASION;
					RPTR(FACT) ITEMVAR FID);
EXTERNAL PROCEDURE SET_DEMON(ITEMVAR WLD,OCCASION,FID;LIST PF);

EXTERNAL PROCEDURE FACT_PRINT(RPTR (FACT) F;INTEGER WIX(-1));
EXTERNAL PROCEDURE COPY_ALERTS(ITEMVAR IW,OW);
EXTERNAL PROCEDURE DBDUMP(INTEGER MN(1),MX(99999));
EXTERNAL PROCEDURE WIXDMP;
EXTERNAL PROCEDURE WIXPRT(INTEGER I);
EXTERNAL PROCEDURE WLDDMP(ITEMVAR WLD);
EXTERNAL INTEGER PMDBTF,PMCAL;
EXTERNAL SIMPLE PROCEDURE PMDBST;

EXTERNAL MATCHING RECPROC TRUE_IN(RPTR (FACT) F;? ITEMVAR W);
EXTERNAL MATCHING RECPROC GEN_FACTS(REFERENCE RPTR(FACT) F; ITEMVAR W);

EXTERNAL RPTR(ANY_CLASS) PROCEDURE PATTBLK(LIST PL);

EXTERNAL RPTR(FACT) PROCEDURE ASRTPF(ITEMVAR WLD;RPTR(ANY_CLASS) PR);
EXTERNAL RECURSIVE RPTR(FACT) PROCEDURE ASRTF(ITEMVAR WLD;RPTR(FACT) F);
EXTERNAL PROCEDURE DENYPF(ITEMVAR WLD;RPTR(ANY_CLASS) PR);
EXTERNAL RECURSIVE PROCEDURE DENYF(ITEMVAR WLD;RPTR(FACT) F);

EXTERNAL RECURSIVE PROCEDURE SAY_RELIES(ITEMVAR WLD;
			      RPTR(FACT) ITEMVAR F1;RPTR(FBOOL,FACT) FB);
EXTERNAL SET PROCEDURE RELIANCE(ITEMVAR WLD;RPTR(FACT) ITEMVAR FI);

EXTERNAL MATCHING RECPROC PMATCH(? ITEMVAR W;
		RPTR(ANY_CLASS) PR;BOOLEAN NONUSE(FALSE));

EXTERNAL RPTR(FACT) PROCEDURE LPASRT(ITEMVAR WLD;LIST PL);
EXTERNAL PROCEDURE LPDENY(ITEMVAR WLD;LIST PL);
EXTERNAL MATCHING RECPROC LPMATCH(? ITEMVAR W;LIST PL;BOOLEAN NONUSE(FALSE));

EXTERNAL INTEGER SIMPROC LSTCMP(REFERENCE LIST L1,L2;INTEGER LGO('777777));
EXTERNAL INTEGER SIMPLE PROCEDURE STRCMP(STRING S1,S2);
EXTERNAL INTEGER RECURSIVE PROCEDURE ELTCMP(INTEGER D1,D2);
EXTERNAL INTEGER SIMPROC UBS(INTEGER PROCEDURE PROBE; INTEGER L,U);

EXTERNAL PROCEDURE ZAPWLD(ITEMVAR W);
EXTERNAL PROCEDURE CLRWLD(REFERENCE RPTR(FACT) F;INTEGER IX);
EXTERNAL SIMPLE PROCEDURE SETWLD(REFERENCE RPTR(FACT) F;INTEGER IX);
EXTERNAL BOOLEAN SIMPLE PROCEDURE TSTWIX(REFERENCE RPTR(FACT) F;INTEGER IX);
EXTERNAL INTEGER SIMPLE PROCEDURE WLDINX(ITEMVAR W;INTEGER NEWFLG(0));

EXTERNAL INTEGER ITEMVAR PROCEDURE NEWWLD;
EXTERNAL PROCEDURE CPYWLD(ITEMVAR IW,OW);
EXTERNAL PROCEDURE DIFWLD(ITEMVAR W1,W2,WD);
EXTERNAL PROCEDURE ANDWLD(ITEMVAR W1,W2,WD);
EXTERNAL PROCEDURE ORWLD(ITEMVAR W1,W2,WD);

EXTERNAL ITEMVAR PROCEDURE PREP_ALERT(ITEMVAR W);
EXTERNAL PROCEDURE CALL_ALERT(ITEMVAR W);

EXTERNAL PROCEDURE USEFCT(RPTR(FACT) F;ITEMVAR WLD);
EXTERNAL PROCEDURE RELIEVE(RPTR(FACT) F;ITEMVAR WLD);

IFCR ¬DECLARATION(PMDEBUGGING) THENC
REQUIRE "PMATCH[AL,HE]" LOAD_MODULE;
ENDC